1. Field
The following description relates to a program install technique to improve a program execution speed.
2. Description of the Related Art
Execution of programs incurs processing costs. Processing costs in relation to program execution includes a cost for loading the program from a hard disk drive (HDD) to a Random Access Memory (RAM), a cost for loading a library associated with the program, a cost for relocating a shared library associated with the program, a cost for executing initialization functions before a main function of the program appears, and so on.
Recently, in light of developments in artificial intelligence, the volume, complexity of programs, and costs for program execution are dramatically increasing and accordingly attentions are focused on reducing such program execution costs.
A representative method for reducing costs for program execution is to use storage with good input/output performance. For example, a Solid State Drive (SSD) having better input/output performance than HDD improves the speed at which programs are loaded to RAM. Specifically, with regards to mobile products, quick responsiveness is an important factor, as opposed to processing performance, in order to immediately cope with a user's demands.
Related technologies include prelinking, which completely relocates a program before execution of the program. Prelinking predicts a loading address of a shared library associated with the program to change the addresses of functions to have to be relocated in advance. Relocation is performed when the shared library fails to be loaded to the predicted loading address. However, prelinking cannot eliminate a cost to call initialization functions that are repeatedly called whenever a program is executed. Checkpoint/resume migrates programs to handle server load distribution or sever failure, which is directed to suspend/resume each application program. However, checkpoint/resume has a limited environment for suspending.
The more intelligent application programs are, the longer their startup latencies. The is because an increase in volume of programs deepens structural modulization, which increases a relocation cost for starting up programs, an I/O cost for reading up pages, a call cost for repeatedly calling initialization functions for every program execution, and so on. The relocation cost among the costs is due to a shared library which is used to reduce memory footprints in a General Purpose Operating System (GPOS) environment that have different, independent address spaces and use virtual addresses.
A system which uses a nonvolatile memory as a main memory may store application programs or shared libraries in the main memory. Since the nonvolatile memory has excellent I/O performance compared to a secondary storage, such as HDD, SSD, Flash, and the like, the system has less I/O cost. However, the system cannot still reduce costs for reallocation and repeatedly calling initialization functions every program execution.